home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 1999 May / SGI IRIX Installation Tools & Overlays 1999 May - Disc 2.iso / relnotes / dmedia_dev / ch09.z / ch09
Text File  |  1999-04-19  |  13KB  |  397 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        9.  _M_o_v_i_e__L_i_b_r_a_r_y
  9.  
  10.        This chapter lists information about the Movie Library
  11.        programming interface included IRIS Digital Media
  12.        Development Environment.  It includes known problems and
  13.        workarounds.
  14.  
  15.        The Movie Library (_l_i_b_m_o_v_i_e._s_o for use with IRIS GL, or
  16.        _l_i_b_m_o_v_i_e_G_L._s_o for use with OpenGL) is a C-based applications
  17.        programming interface for the creation of programs which
  18.        read, write, and play movies. A movie is a file containing
  19.        sequences of images and/or audio.  A movie is a useful
  20.        display method for graphical sequences which cannot be
  21.        rendered in real time or for any sequenced image data. The
  22.        Movie Library currently provides support for the native
  23.        Silicon Graphics movie file format, QuickTime(*) file
  24.        format, MPEG I Systems Layer, and the AVI format, and DIF
  25.        format (DVC/DVCPro raw data). Not all of the movie library
  26.        features are available with all file formats.  Also, not all
  27.        Movie Library interfaces are supported in the Iris GL
  28.        version.
  29.  
  30.        The library contains approximately 80 calls.
  31.  
  32.        The main features of the Movie Library (MV) are:
  33.  
  34.           +o Ability to read, write, and play movie files.
  35.  
  36.           +o High level interface to image data compression.
  37.  
  38.           +o Support for several file formats, including
  39.  
  40.                     Apple QuickTime
  41.  
  42.                     SGI Movie
  43.  
  44.                     MPEG I Systems Layer
  45.  
  46.                     MPEG I Video Layer
  47.  
  48.                     AVI
  49.  
  50.                     DIF
  51.  
  52.           +o File-format independent API.
  53.  
  54.           +o Asynchronous playback support with flexible controls.
  55.  
  56.           +o Basic editing features for image and audio sequences.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.           +o Support for embedded movies in applications software.
  75.  
  76.        The Movie Library is built upon other libraries which must
  77.        be linked into the application.  These include:
  78.  
  79.                - Audio Library (_l_i_b_a_u_d_i_o._s_o)
  80.  
  81.                - Compression Library (_l_i_b_c_l._s_o)
  82.  
  83.                - Digital Media Library (_l_i_b_d_m_e_d_i_a._s_o)
  84.  
  85.        (*) QuickTime is a registered trademark of Apple Computer,
  86.        Inc.
  87.  
  88.  
  89.        A number of example programs which provide coverage of many
  90.        of the calls in the library are also included. They are
  91.        contained in the dmedia_dev.src.examples portion of the
  92.        install image and get installed in
  93.        /usr/share/src/dmedia/movie. A README file there explains
  94.        each of the example programs.
  95.  
  96.        Debugging versions of the library are available as well
  97.        (/_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e._s_o and
  98.        /_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_G_L._s_o).  They perform extra error
  99.        checking on all parameters passed into the library and
  100.        provide more extensive feedback to the programmer as to what
  101.        might be wrong.  However, they also incur a substantial
  102.        overhead and it is not recommended that they be for anything
  103.        other than testing. They may be used by setting
  104.        LD_LIBRARY_PATH (or LD_LIBRARYN32_PATH) to point at
  105.        /usr/lib/debug (or /usr/lib32/debug) and running the
  106.        application. See rrrrlllldddd((((1111)))) for more information.
  107.  
  108.  
  109.        For additional information about the Movie Library see the
  110.        overview manual page mmmmvvvvIIIInnnnttttrrrroooo(3mv).
  111.  
  112.  
  113.        9.1  _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
  114.  
  115.  
  116.        This section lists changes and additions made to the Movie
  117.        Library since the release of IRIX 5.3.
  118.  
  119.           +o For Irix 6.5, the movie library has been enhanced to
  120.             support certain common kinds of compressed audio in
  121.             QuickTime movies. QuickTime movies with IMA4 (also
  122.             known as IMA4:1) compressed audio tracks are now
  123.             readable, as are DV-Audio compressed tracks. (DV-Audio
  124.             compression is also supported in DIF streams.) Note
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.             that IMA4 is supported read-only (ie, decompress-only).
  141.             DV-Audio compressed data can be created only when
  142.             exporting a DIF stream using mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
  143.  
  144.           +o Standard QuickTime Motion JPEG-A (MJPEG-A) field based
  145.             compression is now supported in Irix 6.5 (it was
  146.             available in 6.3 with appropriate patches as well).
  147.             MJPEG-A is a powerful format because it is cross-
  148.             platform, so that the same movie can be played on
  149.             SGI's, Mac's and PC's in realtime, with appropriate
  150.             hardware, such as the O2's built in ICE hardware.
  151.  
  152.           +o In Irix 6.5, a new function has been added to allow
  153.             simplified generation of movies which are optimized for
  154.             playback. Please see man mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
  155.  
  156.           +o The movie library supports more hardware for playing
  157.             back movies, such as Cosmo Compress, O2's built in ICE,
  158.             Impact Compression, etc.
  159.  
  160.           +o Several functions have been added to the Movie Library
  161.             to provide time based access to and editing of movie
  162.             data in addition to the existing frame based calls.
  163.             See the "FRAME, TIME and TIMESCALE" section of
  164.             mmmmvvvvIIIInnnnttttrrrroooo(3dm) for more details.
  165.  
  166.           +o In 5.3 mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) would return different formats
  167.             (eg, pixel packing, orientation, etc), depending upon
  168.             how the data was stored in the file. Now
  169.             mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) ALWAYS returns the same pixel
  170.             formats.
  171.  
  172.             mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm) used to expect its input format
  173.             (eg, pixel packing orientation, etc) to be correlated
  174.             to the file format/codec. Now it ALWAYS expects data to
  175.             be in the same format.
  176.  
  177.             These changes were made to prevent requiring every
  178.             application to understand how to perform image
  179.             conversions.
  180.  
  181.             See the man page for additional information about
  182.             mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) and mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm).
  183.  
  184.           +o The QuickTime Compressor Library product no longer
  185.             exists.  Applications that link with _l_i_b_m_o_v_i_e._s_o will
  186.             now be able to read and create movies compressed with
  187.             the Apple Animation and Apple Video compression
  188.             algorithms without linking with _l_i_b_q_t._a or calling
  189.             mmmmvvvvIIIInnnniiiittttQQQQuuuuiiiicccckkkkTTTTiiiimmmmeeee. Applications will also be able to read
  190.             and write Cinepak (Compact Video) movies.  The movie
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.             library will also recognize and play back QuickTime
  207.             movies compressed with Indeo(tm) compression, and
  208.             DVC/DVCPro compression.
  209.  
  210.           +o The Movie Library now supports multiple audio and video
  211.             tracks in QuickTime files.  New calls allow the
  212.             programmer to find the number of tracks and retrieve
  213.             track handles on each one.  Multiple tracks of a given
  214.             medium may be played simultaneously or sequentially
  215.             under program control.
  216.  
  217.           +o The Movie Library has been extended to allow external
  218.             data references for tracks.  A track that contains an
  219.             external data reference has data that resides in a
  220.             separate file.  The Movie Library access this file as
  221.             necessary during movie editing and playback.
  222.  
  223.           +o The Movie Library no longer requires that each frame in
  224.             an image track have the same duration.  A sequence of
  225.             an image track may be scaled by an application to
  226.             increase or shorten its playback time.
  227.  
  228.           +o In general, many more forms of QuickTime movies are
  229.             recognized.
  230.  
  231.           +o Read only support for MPEG I Systems streams is new in
  232.             this version of the Movie Library.  MPEG movies may be
  233.             played using the Movie Library's playback calls.
  234.             However, most calls that manipulate movie data, such as
  235.             editing or reading compressed images, are not supported
  236.             for MPEG files.
  237.  
  238.           +o AVI support has been added to the movie library.  The
  239.             compression types currently supported for AVI files are
  240.             Cinepak, Indeo, and uncompressed.
  241.  
  242.           +o The Movie Library now supports controlling the image
  243.             compression quality, bitrate, and keyframe frequency of
  244.             data in an image track.  These qualities can be
  245.             controlled by setting the appropriate DMparams when the
  246.             image track is created.  See the mmmmvvvvAAAAddddddddTTTTrrrraaaacccckkkk(3dm) man
  247.             page for more details.
  248.  
  249.           +o The Movie Library now supports software scaling of the
  250.             volume of a playing movie.  See
  251.             mmmmvvvvGGGGeeeettttMMMMoooovvvviiiieeeePPPPllllaaaayyyyVVVVoooolllluuuummmmeeee(3dm) for more details.
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.        9.2  _B_u_g__F_i_x_e_s__s_i_n_c_e__5_._3
  273.  
  274.        This sections lists some of the known bugs that have been
  275.        fixed since 5.3
  276.  
  277.           +o Bug #610693: As of Irix 6.5.1, uncompressed frame-based
  278.             (ie, interleaved-fields) uncompressed 8-bit YUV422
  279.             QuickTime movies generated by the SGI movie library
  280.             will now be readable on other platforms which support
  281.             QuickTime 3.0. Note that these movies may not play back
  282.             correctly on older Irix releases, but movies generated
  283.             on older Irix releases will be playable on Irix 6.5.1.
  284.  
  285.           +o The problems many users ran into with upside down and
  286.             non-color converted uncompressed QuickTime movies are
  287.             solved by the fact that mvReadFrames now always returns
  288.             XBGR, bottom-to-top, non interlaced data.
  289.  
  290.           +o Stereo audio in QuickTime files is now handled
  291.             correctly.
  292.  
  293.           +o The Movie Library's playback engine has been modified
  294.             to pick up edits made to a movie.  For example, if
  295.             frames are added to a movie that's been bound to a
  296.             window but is currently not playing the playback
  297.             instance will pick up the change and play all the
  298.             frames of the movie.  It should be noted that no edits
  299.             should be made to the movie while the movie is
  300.             currently playing.
  301.  
  302.           +o The Movie Library now supports playing back tracks of
  303.             different lengths.  For example, playing a movie with a
  304.             video track that is longer than its audio track will
  305.             play all the frames of the video track even after the
  306.             audio has stopped playing.
  307.  
  308.           +o Calling mmmmvvvvSSSSttttoooopppp as the playback engine reached the last
  309.             frame of a movie could result in a deadlock condition
  310.             in the 5.3 Movie Library.  This can no longer happen.
  311.  
  312.  
  313.        9.3  _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
  314.  
  315.  
  316.        This section lists some of the known problems with the Movie
  317.        Library.
  318.  
  319.           +o The SGI movie file format used by the Movie Library is
  320.             different from that used prior to the release of Irix
  321.             5.2.  However, movies in the older format can still be
  322.             read and played by the Movie Library. Only the current
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.             format can be written.
  339.  
  340.           +o If the machine on which you are playing a movie cannot
  341.             handle the frame rate specified, the audio may sound
  342.             choppy.
  343.  
  344.           +o Setting the play speed of the movie to 0 with
  345.             mvSetPlaySpeed() will cause the movie library to crash.
  346.             The workaround for this is to call mvStop() instead of
  347.             setting the play speed to 0.
  348.  
  349.           +o If a QuickTime movie contains complex elements that the
  350.             Movie Library does not fully support, the movie will be
  351.             opened read only.  The movie must be copied to create a
  352.             movie that can be edited.
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.